package com.yuju.vo.account;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.yuju.common.BaseVO;
import com.yuju.common.fileld.validator.Rule.NonNull;

/**
 * 类名：AccountVO  <br />
 *
 * 功能：
 *
 * @author : jiaokn <br />
 * @Date : 2017年12月4日 上午11:07:45  <br />
 * @version : 1.1 <br />
 */
public class AccountVO extends BaseVO {
	/**
     *  主键。存储UUID，由应用生成。,所属表字段为acc_order_account.id
     */
    private String id;
    
 // 每页显示记录数
 	@NonNull(message = "每页显示行数不能为空", serviceLine = "pager")
 	private Integer pageSize;

 	// 当前页码
 	@NonNull(message = "页数不能为空", serviceLine = "pager")
 	private Integer page;

   
	/**
     *  所属酒店。外键，引用酒店信息表（grp_hotel）的主键（id）。,所属表字段为acc_order_account.hotel_id
     */
    private String hotelId;

    /**
     *  ,所属表字段为acc_order_account.reserve_id
     */
    private String reserveId;

    /**
     *  房间订单ID。外键，引用房间订单表（ord_room_order）的主键（id）。,所属表字段为acc_order_account.room_order_id
     */
    private String roomOrderId;

    /**
     *  账务类型。1收入SR（夜审房费等应收）、2结算JS（实际收款）。,所属表字段为acc_order_account.account_type
     */
    private Byte accountType;
    
    /**
     *  流水号,所属表字段为acc_order_account.account_code
     */
    private String accountCode;

    /**
     *  营业项目。,所属表字段为acc_order_account.business_type
     */
    private Byte businessType;

    /**
     *  营业项目名称。,所属表字段为acc_order_account.business_type_name
     */
    private String businessTypeName;

    /**
     *  营业项目分类。指具体营业项目下的具体分类。,所属表字段为acc_order_account.business_type_detail
     */
    private Byte businessTypeDetail;

    /**
     *  营业项目类型名称。,所属表字段为acc_order_account.business_type_detail_name
     */
    private String businessTypeDetailName;

    /**
     *  营业详情。,所属表字段为acc_order_account.business_detail
     */
    private String businessDetail;

    /**
     *  金额。,所属表字段为acc_order_account.money
     */
    private BigDecimal money;

    /**
     *  数量。,所属表字段为acc_order_account.amount
     */
    private Integer amount;

    /**
     *  票据号。,所属表字段为acc_order_account.voucher_no
     */
    private String voucherNo;

    /**
     *  住客ID。外键，引用客人档案（grp_guest_info）的主键（id）。,所属表字段为acc_order_account.room_guest_id
     */
    private String roomGuestId;

    /**
     *  账务状态。,所属表字段为acc_order_account.account_status
     */
    private Byte accountStatus;

    /**
     *  账务状态名称。,所属表字段为acc_order_account.account_status_name
     */
    private String accountStatusName;

    /**
     *  外键，引用班次表（hot_class）的主键（id）。,所属表字段为acc_order_account.class_id
     */
    private String classId;

    /**
     *  创建用户ID。外键，引用员工表（grp_employee）的主键（id）。,所属表字段为acc_order_account.create_user_id
     */
    private String createUserId;

    /**
     *  更新用户ID。外键，引用员工表（grp_employee）的主键（id）。,所属表字段为acc_order_account.update_user_id
     */
    private String updateUserId;

    /**
     *  备注。,所属表字段为acc_order_account.remark
     */
    private String remark;

    /**
     *  是否逻辑删除。1表示已逻辑删除，2表示未逻辑删除，默认为2。,所属表字段为acc_order_account.is_deleted
     */
    private Byte isDeleted;

    /**
     *  创建时间。,所属表字段为acc_order_account.gmt_create
     */
    private Date gmtCreate;

    /**
     *  修改时间。,所属表字段为acc_order_account.gmt_modified
     */
    private Date gmtModified;

    /**
     *  所属集团。外键，引用集团信息表（grp_group）的主键（id）。,所属表字段为acc_order_account.group_id
     */
    private String groupId;
    
    /* ---------------- 挂账时用到的字段 ------------------ */
    
    /**  
     * accountName : 支付单位/中介的名称
     */
    private String accountName;
    
    /**  
     * customAccNo : 支付单位/中介的id
     */
    private String customAccNo;
    
    /**  
     * roomNoZF : 支付订单的房间号
     */
    private String roomNoZF;
    
    /**  
     * roomOrderIdZF : 支付订单的订单id
     */
    private String roomOrderIdZF;
    
    /**  
     * roomGuestIdZF : 支付订单的客账id
     */
    private String roomGuestIdZF;
    
    /**  
     * roomNo : 挂账人的房间号
     */
    private String roomNo;
    
    /**  
     * reserveName : 预定人姓名
     */
    private String reserveName;
    
    /* ---------------- 查询条件 ------------------ */
    
    private Date startTime;
    
    private Date endTime;
    
    private List<Byte> businessTypes;
    
    private Byte rentType;
    
    /*授权码*/
    private String authCode;
    

    public String getAuthCode() {
		return authCode;
	}

	public void setAuthCode(String authCode) {
		this.authCode = authCode;
	}

	public String getAccountName() {
		return accountName;
	}

	public void setAccountName(String accountName) {
		this.accountName = accountName;
	}

	public String getCustomAccNo() {
		return customAccNo;
	}

	public void setCustomAccNo(String customAccNo) {
		this.customAccNo = customAccNo;
	}

	public String getRoomNoZF() {
		return roomNoZF;
	}

	public void setRoomNoZF(String roomNoZF) {
		this.roomNoZF = roomNoZF;
	}

	public String getRoomOrderIdZF() {
		return roomOrderIdZF;
	}

	public void setRoomOrderIdZF(String roomOrderIdZF) {
		this.roomOrderIdZF = roomOrderIdZF;
	}

	public String getRoomGuestIdZF() {
		return roomGuestIdZF;
	}

	public void setRoomGuestIdZF(String roomGuestIdZF) {
		this.roomGuestIdZF = roomGuestIdZF;
	}

	public String getRoomNo() {
		return roomNo;
	}

	public void setRoomNo(String roomNo) {
		this.roomNo = roomNo;
	}

	private static final long serialVersionUID = 1L;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getHotelId() {
        return hotelId;
    }

    public void setHotelId(String hotelId) {
        this.hotelId = hotelId;
    }

    public String getReserveId() {
        return reserveId;
    }

    public void setReserveId(String reserveId) {
        this.reserveId = reserveId;
    }

    public String getRoomOrderId() {
        return roomOrderId;
    }

    public void setRoomOrderId(String roomOrderId) {
        this.roomOrderId = roomOrderId;
    }

    public Byte getAccountType() {
        return accountType;
    }

    public void setAccountType(Byte accountType) {
        this.accountType = accountType;
    }

    public Byte getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Byte businessType) {
        this.businessType = businessType;
    }

    public String getBusinessTypeName() {
        return businessTypeName;
    }

    public void setBusinessTypeName(String businessTypeName) {
        this.businessTypeName = businessTypeName;
    }

    public Byte getBusinessTypeDetail() {
        return businessTypeDetail;
    }

    public void setBusinessTypeDetail(Byte businessTypeDetail) {
        this.businessTypeDetail = businessTypeDetail;
    }

    public String getBusinessTypeDetailName() {
        return businessTypeDetailName;
    }

    public void setBusinessTypeDetailName(String businessTypeDetailName) {
        this.businessTypeDetailName = businessTypeDetailName;
    }

    public String getBusinessDetail() {
        return businessDetail;
    }

    public void setBusinessDetail(String businessDetail) {
        this.businessDetail = businessDetail;
    }

    public BigDecimal getMoney() {
        return money;
    }

    public void setMoney(BigDecimal money) {
        this.money = money;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public String getVoucherNo() {
        return voucherNo;
    }

    public void setVoucherNo(String voucherNo) {
        this.voucherNo = voucherNo;
    }

    public String getRoomGuestId() {
        return roomGuestId;
    }

    public void setRoomGuestId(String roomGuestId) {
        this.roomGuestId = roomGuestId;
    }

    public Byte getAccountStatus() {
        return accountStatus;
    }

    public void setAccountStatus(Byte accountStatus) {
        this.accountStatus = accountStatus;
    }

    public String getAccountStatusName() {
        return accountStatusName;
    }

    public void setAccountStatusName(String accountStatusName) {
        this.accountStatusName = accountStatusName;
    }

    public String getClassId() {
        return classId;
    }

    public void setClassId(String classId) {
        this.classId = classId;
    }

    public String getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId;
    }

    public String getUpdateUserId() {
        return updateUserId;
    }

    public void setUpdateUserId(String updateUserId) {
        this.updateUserId = updateUserId;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Byte getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Byte isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", hotelId=").append(hotelId);
        sb.append(", reserveId=").append(reserveId);
        sb.append(", roomOrderId=").append(roomOrderId);
        sb.append(", accountType=").append(accountType);
        sb.append(", businessType=").append(businessType);
        sb.append(", businessTypeName=").append(businessTypeName);
        sb.append(", businessTypeDetail=").append(businessTypeDetail);
        sb.append(", businessTypeDetailName=").append(businessTypeDetailName);
        sb.append(", businessDetail=").append(businessDetail);
        sb.append(", money=").append(money);
        sb.append(", amount=").append(amount);
        sb.append(", voucherNo=").append(voucherNo);
        sb.append(", roomGuestId=").append(roomGuestId);
        sb.append(", accountStatus=").append(accountStatus);
        sb.append(", accountStatusName=").append(accountStatusName);
        sb.append(", classId=").append(classId);
        sb.append(", createUserId=").append(createUserId);
        sb.append(", updateUserId=").append(updateUserId);
        sb.append(", remark=").append(remark);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", groupId=").append(groupId);
        sb.append("]");
        return sb.toString();
    }

	public String getReserveName() {
		return reserveName;
	}

	public void setReserveName(String reserveName) {
		this.reserveName = reserveName;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public String getAccountCode() {
		return accountCode;
	}

	public void setAccountCode(String accountCode) {
		this.accountCode = accountCode;
	}

	public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public Byte getRentType() {
		return rentType;
	}

	public void setRentType(Byte rentType) {
		this.rentType = rentType;
	}

	public List<Byte> getBusinessTypes() {
		return businessTypes;
	}

	public void setBusinessTypes(List<Byte> businessTypes) {
		this.businessTypes = businessTypes;
	}


}
